[GitHub] Compareブランチのうち一部のマージコミットのみをマージ対象としたPull Requestを作る
こんにちは、CX事業本部 IoT事業部の若槻です。
今回は、GitHubでCompareブランチのうち一部のマージコミットのみをマージ対象としたPull Requestを作る方法を確認してみました。
何をしたいのか
下記のように複数のマージコミットが作成されたブランチがあります。
このCompareブランチ(develop
)の変更のうち、#2(a1a3d61
)のマージコミットまでの変更のみをBaseブランチ(main
)にマージしたいです。
方法
下記のコマンドを実行して、指定のマージコミット(a1a3d61
)までの変更を含んだブランチを作成します。
$ commit=a1a3d61 //対象としたいマージコミットのコミットID $ git fetch origin develop //Compareブランチのfetch $ git checkout -b release-to-main-from-${commit} ${commit} //マージコミットをベースにブランチを作成 $ git push origin HEAD //リモートにPush
GitHubのコンソールで「main
<-release-to-main-from-${commit}
」のcompareを取ると、#2(a1a3d61
)のマージコミットまでの変更のみマージ対象としたPull Requestが作成できるようになっています。
「ベースブランチ <- コミットID」のCompareからはPull Requestを作成できない
一方で、「ベースブランチ <- コミットID」のCompareを取った場合は、Pull Requestを作成することが出来ませんでした。(作成メニューが表示されない)
Pull Requestの作成はブランチ間でのCompareでのみ行えるようです。
ちなみに、上記のような「ベースブランチ <- コミットID」のCompareの画面は下記のようにURLを指定すれば開けます。
https://github.com/<アカウント>/<リポジトリ>/compare/<ベースブランチ名>...<コミットID>
おわりに
Compareブランチのうち一部のマージコミットのみをマージ対象としたPull Requestを作る方法を確認してみました。
案件の開発で、すぐにマージしたい変更とまだマージしたくない変更が同じブランチ内に混在してしまった際に、今回の方法が役に立ちました。
参考
以上